home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / Oberon⁄F™ 1.1 / Obx / Mod / Tabs (.txt) < prev    next >
Encoding:
Oberon Document  |  1995-08-09  |  2.9 KB  |  77 lines  |  [oODC/obnF]

  1. Documents.StdDocumentDesc
  2. Documents.DocumentDesc
  3. Containers.ViewDesc
  4. Views.ViewDesc
  5. Stores.StoreDesc
  6. Documents.ModelDesc
  7. Containers.ModelDesc
  8. Models.ModelDesc
  9. Stores.ElemDesc
  10. TextViews.StdViewDesc
  11. TextViews.ViewDesc
  12. TextModels.StdModelDesc
  13. TextModels.ModelDesc
  14. TextModels.AttributesDesc
  15. Helvetica
  16. Helvetica
  17. Helvetica
  18. MODULE ObxTabs;
  19.     IMPORT Views, TextModels, TextViews, TextControllers;
  20.     CONST tab = 09X; line = 0DX;
  21.     VAR field: ARRAY 256 OF CHAR;
  22.     PROCEDURE ReadField (r: TextModels.Reader);
  23.         VAR i: INTEGER; ch: CHAR;
  24.     BEGIN    (* read a field, which is a sequence of characters terminated by the end of text, or a tab or line character *)
  25.         i := 0; r.ReadChar(ch);
  26.         WHILE ~r.eot & (ch # tab) & (ch # line) DO
  27.             field[i] := ch; INC(i); r.ReadChar(ch)
  28.         END;
  29.         field[i] := 0X
  30.     END ReadField;
  31.     PROCEDURE WriteField (w: TextModels.Writer);
  32.         VAR i: INTEGER; ch: CHAR;
  33.     BEGIN
  34.         i := 0; ch := field[0];
  35.         WHILE ch # 0X DO
  36.             w.WriteChar(ch); INC(i); ch := field[i]
  37.         END
  38.     END WriteField;
  39.     PROCEDURE Convert*;
  40.         VAR c: TextControllers.Controller; t: TextModels.Model; r: TextModels.Reader;
  41.             w: TextModels.Writer; ch: CHAR; beg, end: LONGINT;
  42.     BEGIN
  43.         c := TextControllers.Focus();
  44.         IF (c # NIL) & c.HasSelection() THEN
  45.             c.GetSelection(beg, end);
  46.             r := c.text.NewReader(NIL); r.SetPos(beg);
  47.             t := TextModels.Clone(c.text);
  48.             w := t.NewWriter(NIL);
  49.             ReadField(r);    (* title *)
  50.             WHILE ~r.eot DO
  51.                 WriteField(w); w.WriteChar(" ");
  52.                 ReadField(r); WriteField(w); w.WriteChar(" ");    (* first name *)
  53.                 ReadField(r); WriteField(w); w.WriteChar(tab);    (* name *)
  54.                 ReadField(r); WriteField(w); w.WriteChar(tab);    (* company 1 *)
  55.                 ReadField(r); WriteField(w); w.WriteChar(tab);    (* company 2 *)
  56.                 ReadField(r); WriteField(w); w.WriteChar(tab);    (* address *)
  57.                 ReadField(r); WriteField(w); w.WriteChar(" ");    (* ZIP *)
  58.                 ReadField(r); WriteField(w); w.WriteChar(tab);    (* city *)
  59.                 ReadField(r); WriteField(w); w.WriteChar(line);    (* country *)
  60.                 ReadField(r)    (* title *)
  61.             END;
  62.             Views.OpenView(TextViews.dir.New(t))
  63.         END
  64.     END Convert;
  65. END ObxTabs.
  66. TextControllers.StdCtrlDesc
  67. TextControllers.ControllerDesc
  68. Containers.ControllerDesc
  69. Controllers.ControllerDesc
  70. TextRulers.StdRulerDesc
  71. TextRulers.RulerDesc
  72. TextRulers.StdStyleDesc
  73. TextRulers.StyleDesc
  74. TextRulers.AttributesDesc
  75. Helvetica
  76. Documents.ControllerDesc
  77.